/**
 * 
 */
package com.ap.core.domain;

import javax.persistence.AttributeOverride;
import javax.persistence.AttributeOverrides;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.EnumType;
import javax.persistence.Enumerated;
import javax.persistence.Table;

import org.hibernate.annotations.TypeDef;

import com.ap.core.cxf.jaxb.common.ActivationStatus;

/**
 * @author Dilip.Sridhar
 *
 */
@Entity
@Table(name = "MERCHANT_DISTRIBUTOR_LIST")
@AttributeOverrides({
	@AttributeOverride(name = "merchantIdentification", column = @Column(name="MERCHANT_IDENTIFICATION")),
	@AttributeOverride(name = "distributorIdentification",	column = @Column(name="DISTRIBUTOR_IDENTIFICATION"))
	})
@TypeDef(name = "id", typeClass = MessageBusinessRuleDetailsId.class)
public class MerchantDistributorDetails extends Identifiable<MerchantDistributorDetailsId> {
	
	private static final long serialVersionUID = 3918084306091590283L;
	
	@Column(name = "MERCHANT_ID")
    private String merchantId;
	
	@Column(name = "DISTRIBUTOR_ID")
	private String distributorId;

    @Column(name = "MERCHANT_NAME")
    private String merchantName;
    
    @Column(name = "DISTRIBUTOR_NAME")
    private String distributorName;
    
    @Column(name = "MERCHANT_ACTIVATION_STATUS")
    @Enumerated(EnumType.STRING)
    private ActivationStatus merchantActivationStatus;
    
    @Column(name = "DISTRIBUTOR_ACTIVATION_STATUS")
    @Enumerated(EnumType.STRING)
    private ActivationStatus distributorActivationStatus;
    
    private MerchantDistributorDetails() {}

    /**
	 * @return the merchantId
	 */
	public String getMerchantId() {
		return merchantId;
	}

	/**
	 * @return the distributorId
	 */
	public String getDistributorId() {
		return distributorId;
	}
	

	/**
	 * @return the merchantName
	 */
	public String getMerchantName() {
		return merchantName;
	}

	/**
	 * @return the distributorName
	 */
	public String getDistributorName() {
		return distributorName;
	}

	/**
	 * @return the merchantActivationStatus
	 */
	public ActivationStatus getMerchantActivationStatus() {
		return merchantActivationStatus;
	}

	/**
	 * @return the distributorActivationStatus
	 */
	public ActivationStatus getDistributorActivationStatus() {
		return distributorActivationStatus;
	}

}
